20 research outputs found

    Processus flexible de configuration pour lignes de produits logiciels complexes

    Get PDF
    The necessity of producing high quality softwares and the specific software market needs raise new approaches such as Software Product Lines (SPL). However in order to satisfy the growing requirements of new information systems, we need to consider those systems as a composition of many interconnected sub-systems called systems-of-systems. As a SPL, it implies to support the modularity and the large variability of such systems, from the definition of sub-systems to their composition, ensuring the consistency of final systems. To support design and usage of such a complex SPL, we propose a new approach based on (i) the definition of a SPL domain model, (ii) the formalization of variability using feature models (FM) and (iii) the representation of dependencies between those different FM. In order to manage the complexity of this SPL we complete our approach by in one hand algorithms ensuring the consistency of the SPL and on the other hand the definition of a configuration process which guarantees the consistency of products without imposing order in user choices and authorizing to cancel any choice. This thesis presents a formalization of these works and demonstrates the expected properties of those SPL, like the control of the product line consistency with incremental algorithms exploiting the domain model topology, the formal definition and the proof of the configuration process flexibility, and the consistency concepts of the process itself. On these basis, we propose a first implementation and we validate our works on a SPL dedicated to an industrial scale system-of-systems for producing digital signage systems.La nécessité de produire des logiciels de qualité en adéquation avec les besoins spécifiques du marché a conduit à l'émergence de nouvelles approches de développements telles que les Lignes de Produits Logiciels (LPL). Cependant pour répondre aux exigences croissantes des nouveaux systèmes informatiques, il convient aujourd'hui d'envisager la production de ces systèmes comme des compositions d’un grand nombre de systèmes interconnectés que l'on nomme aujourd'hui des systèmes-de-systèmes. En terme de lignes de produits, il s'agit de supporter la modularité et la très grande variabilité de ces systèmes, aussi bien du point de vue de la définition des sous-systèmes, que du point de vue de leur composition tout en garantissant la viabilité des systèmes construits. Pour supporter la construction et l'utilisation de lignes de produits logiciels complexes, nous proposons une nouvelle approche basée sur (i) la définition du modèle du domaine de la ligne, (ii) la formalisation de la variabilité des éléments du domaine par des feature models (FM) et (iii) l’expression des dépendances entre ces différents FM. Pour maîtriser la complexité de telles lignes nous avons complété cette approche de modélisation par d'une part, des algorithmes visant à assurer la cohérence des lignes ainsi modélisées et d'autre part, la conception d'un processus de configuration des produits logiciels complexes garantissant la cohérence des produits sans imposer d'ordre dans les choix utilisateurs et en autorisant l'annulation des choix. Nous validons nos travaux sur une LPL dédiée à un système-de-systèmes de portée industrielle pour la production de systèmes de diffusion d’informations

    Repairnator patches programs automatically

    Full text link
    Repairnator is a bot. It constantly monitors software bugs discovered during continuous integration of open-source software and tries to fix them automatically. If it succeeds in synthesizing a valid patch, Repairnator proposes the patch to the human developers, disguised under a fake human identity. To date, Repairnator has been able to producepatches that were accepted by the human developers and permanently merged into the code base. This is a milestone for human-competitiveness in software engineering research on automatic program repair.Comment: arXiv admin note: substantial text overlap with arXiv:1810.0580

    Current situation facing the needs of the scenarios from the deliverables I2.1.1 and I2.2.1

    Get PDF
    In this document we present the main issues that we have to face in order to define a Software Product Line (SPL) for Broadcasting Systems. These issues were identified through requirement analysis and refactoring of SEDUITE which are described in two internal deliverables: a) D.2.2.1: Introduces the requirements (functional and non-functional) of a Broadcasting System by using a case study based on large gatherings (e.g., concerts, competitions, parties, etc.). b) D.2.1.1: Explains the definition of SEDUITE as a SPL by identifying the different assets and products that make part of it. In particular, from each deliverable different questions were raised. We use these questions to identify the issues that we need to face and to guide the redaction of this document. We classify the questions according to three main topics: (i) user assistance (cf. Section 2), (ii) building and evolution of the SPL (cf. Section 3) and (iii) kinds of variability (cf. Section 4) The questions from the D.2.2.1 deliverable are identified with I.x and those from D.2.1.1 with Q.x. In both cases, the 'x' represents the number of the question in the deliverable. Additionally, we include the results of two questionnaires intended for consumers of information (i.e., professor and students) from broadcasting system in academic institutions

    SPLEMMA: A Generic Framework for Controlled-Evolution of Software Product Lines

    Get PDF
    International audienceManaging in a generic way the evolution process of feature- oriented Software Product Lines (SPLs) is complex due to the number of elements that are impacted and the heterogeneity of the SPLs regarding artifacts used to define them. Existing work presents specific approaches to manage the evolution of SPLs in terms of such artifacts, i.e., assets, feature models and relation definitions. Moreover stakeholders do not necessarily master all the knowledge of the SPL making its evolution difficult and error-prone without a proper tool support. In order to deal with these issues, we introduce SPLEmma, a generic framework that follows a Model Driven Engineering approach to capture the evolution of a SPL independently of the kind of assets, technologies or feature models used for the product derivation. Authorized changes are described by the SPL maintainer and captured in a model used to generate tools that guide the evolution process and preserve the consistency of the whole SPL. We report on the application of our approach on two SPLs: YourCast for digital signage systems, and SALOON, which enables generation of configurations for cloud providers

    How to Design a Program Repair Bot? Insights from the Repairnator Project

    Get PDF
    update for oadoi on Nov 02 2018International audienceProgram repair research has made tremendous progress over the last few years, and software development bots are now being invented to help developers gain productivity. In this paper, we investigate the concept of a " program repair bot " and present Repairnator. The Repairnator bot is an autonomous agent that constantly monitors test failures, reproduces bugs, and runs program repair tools against each reproduced bug. If a patch is found, Repairnator bot reports it to the developers. At the time of writing, Repairnator uses three different program repair systems and has been operating since February 2017. In total, it has studied 11 317 test failures over 1 609 open-source software projects hosted on GitHub, and has generated patches for 17 different bugs. Over months, we hit a number of hard technical challenges and had to make various design and engineering decisions. This gives us a unique experience in this area. In this paper, we reflect upon Repairnator in order to share this knowledge with the automatic program repair community

    Vers la construction de workflows pour le filtrage sémantique de nouvelles

    Get PDF
    National audienceInternet is becoming today a wonderful medium to broadcast informations. While sources are multiplying (RSS, Web Services, ...), the amount of informations is growing and it becomes necessary to filter them according to user interests. Many tools are currently developed that exploits ontologies or thesauri to annotate informations. They enable to query these annotations according to criteria to retrieve only the relevant informations. The composition of these tools constitute workflows that should be enriched by the emergence of new ontologies modeling different domains and text analysis tools. However the composition of these tools-chains is not accessible for everyone. In this paper we show how these workflows are built and present our approach for automatically building workflows based on user needs. This work is supported by the ANR Emergence \Y project dedicated to automate the broadcasting of informations on large screens, and for which the relevance of informations published is important.Le web se révèle aujourd'hui un merveilleux support de diffusion d'informations. Cependant, tandis que les sources se multiplient (flux rss, services web, ..), la quantité d'informations croît et il est nécessaire de les filtrer en fonction des centres d'intérêts des utilisateurs. Actuellement de nombreux outils qui exploitent les ontologies ou les thésaurus sont mis au point. Ils permettent d'annoter les informations, d'en déduire des critères et d'ensuite obtenir uniquement les informations pertinentes. La composition de ces outils constitue des workflows qui devraient encore s'enrichir grâce à l'apparition de nouvelles ontologies ciblées sur différents domaines et outils de lecture. Cependant la construction de telles chaînes logicielles n'est pas à la portée de tous. Dans cet article nous montrons comment de tels workflows ont été construits et présentons nos perspectives en matière de construction automatique de ces workflows en fonction des besoins utilisateur. Ce travail s'appuie sur le projet ANR Emergence \Y qui vise à automatiser la diffusion des informations sur de grands écrans, et pour lequel la pertinence des informations diffusées est donc particulièrement importante

    Current situation facing the needs of the scenarios from the deliverables I2.1.1 and I2.2.1

    Get PDF
    In this document we present the main issues that we have to face in order to define a Software Product Line (SPL) for Broadcasting Systems. These issues were identified through requirement analysis and refactoring of SEDUITE which are described in two internal deliverables: a) D.2.2.1: Introduces the requirements (functional and non-functional) of a Broadcasting System by using a case study based on large gatherings (e.g., concerts, competitions, parties, etc.). b) D.2.1.1: Explains the definition of SEDUITE as a SPL by identifying the different assets and products that make part of it. In particular, from each deliverable different questions were raised. We use these questions to identify the issues that we need to face and to guide the redaction of this document. We classify the questions according to three main topics: (i) user assistance (cf. Section 2), (ii) building and evolution of the SPL (cf. Section 3) and (iii) kinds of variability (cf. Section 4) The questions from the D.2.2.1 deliverable are identified with I.x and those from D.2.1.1 with Q.x. In both cases, the 'x' represents the number of the question in the deliverable. Additionally, we include the results of two questionnaires intended for consumers of information (i.e., professor and students) from broadcasting system in academic institutions

    A922 Sequential measurement of 1 hour creatinine clearance (1-CRCL) in critically ill patients at risk of acute kidney injury (AKI)

    Get PDF
    Meeting abstrac

    Flexible configuration process for complex software product lines

    No full text
    La nécessité de produire des logiciels de qualité en adéquation avec les besoins spécifiques du marché a conduit à l'émergence de nouvelles approches de développements telles que les Lignes de Produits Logiciels (LPL). Cependant pour répondre aux exigences croissantes des nouveaux systèmes informatiques, il convient aujourd'hui d'envisager la production de ces systèmes comme des compositions d’un grand nombre de systèmes interconnectés que l'on nomme aujourd'hui des systèmes-de-systèmes. En terme de lignes de produits, il s'agit de supporter la modularité et la très grande variabilité de ces systèmes, aussi bien du point de vue de la définition des sous-systèmes, que du point de vue de leur composition tout en garantissant la viabilité des systèmes construits. Pour supporter la construction et l'utilisation de lignes de produits logiciels complexes, nous proposons une nouvelle approche basée sur (i) la définition du modèle du domaine de la ligne, (ii) la formalisation de la variabilité des éléments du domaine par des feature models (FM) et (iii) l’expression des dépendances entre ces différents FM. Pour maîtriser la complexité de telles lignes nous avons complété cette approche de modélisation par d'une part, des algorithmes visant à assurer la cohérence des lignes ainsi modélisées et d'autre part, la conception d'un processus de configuration des produits logiciels complexes garantissant la cohérence des produits sans imposer d'ordre dans les choix utilisateurs et en autorisant l'annulation des choix. Nous validons nos travaux sur une LPL dédiée à un système-de-systèmes de portée industrielle pour la production de systèmes de diffusion d’informations.The necessity of producing high quality softwares and the specific software market needs raise new approaches such as Software Product Lines (SPL). However in order to satisfy the growing requirements of new information systems, we need to consider those systems as a composition of many interconnected sub-systems called systems-of-systems. As a SPL, it implies to support the modularity and the large variability of such systems, from the definition of sub-systems to their composition, ensuring the consistency of final systems. To support design and usage of such a complex SPL, we propose a new approach based on (i) the definition of a SPL domain model, (ii) the formalization of variability using feature models (FM) and (iii) the representation of dependencies between those different FM. In order to manage the complexity of this SPL we complete our approach by in one hand algorithms ensuring the consistency of the SPL and on the other hand the definition of a configuration process which guarantees the consistency of products without imposing order in user choices and authorizing to cancel any choice. This thesis presents a formalization of these works and demonstrates the expected properties of those SPL, like the control of the product line consistency with incremental algorithms exploiting the domain model topology, the formal definition and the proof of the configuration process flexibility, and the consistency concepts of the process itself. On these basis, we propose a first implementation and we validate our works on a SPL dedicated to an industrial scale system-of-systems for producing digital signage systems

    Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies

    No full text
    Proceedings of the 26th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER '19)International audienceBenchmarks of bugs are essential to empirically evaluate automatic program repair tools. In this paper, we present Bears, a project for collecting and storing bugs into an extensible bug benchmark for automatic repair studies in Java. The collection of bugs relies on commit building state from Continuous Integration (CI) to find potential pairs of buggy and patched program versions from open-source projects hosted on GitHub. Each pair of program versions passes through a pipeline where an attempt of reproducing a bug and its patch is performed. The core step of the reproduction pipeline is the execution of the test suite of the program on both program versions. If a test failure is found in the buggy program version candidate and no test failure is found in its patched program version candidate, a bug and its patch were successfully reproduced. The uniqueness of Bears is the usage of CI (builds) to identify buggy and patched program version candidates, which has been widely adopted in the last years in open-source projects. This approach allows us to collect bugs from a diversity of projects beyond mature projects that use bug tracking systems. Moreover, Bears was designed to be publicly available and to be easily extensible by the research community through automatic creation of branches with bugs in a given GitHub repository, which can be used for pull requests in the Bears repository. We present in this paper the approach employed by Bears, and we deliver the version 1.0 of Bears, which contains 251 reproducible bugs collected from 72 projects that use the Travis CI and Maven build environment
    corecore